package org.convallaria.infrastruct.ce.annotation;

import java.lang.annotation.*;

/**
 * 清除所有缓存注解
 * 用于批量清除缓存
 * 
 * @author gjh
 * @since 2024-09-24
 */
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CacheEvictAll {
    
    /**
     * 缓存名称模式，支持通配符
     * 例如：user*, *cache*, user:*
     */
    String[] value() default {};
    
    /**
     * 是否在方法执行前清除
     */
    boolean beforeInvocation() default false;
    
    /**
     * 是否清除所有匹配的缓存
     */
    boolean allEntries() default true;
}
